package com.zdkj.daemon.quartz.feign;

import com.zdkj.common.core.constant.SecurityConstants;
import com.zdkj.common.core.constant.ServiceNameConstants;
import com.zdkj.common.core.util.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;


/**
 * 车站模块对外接口类
 * @author Administrator
 */
@FeignClient(contextId = "remoteSubwayStmService", value = ServiceNameConstants.SUBWAY_STM_SERVICE)
@Component
public interface RemoteSubwayStmService {
    /**
     * 计算车站结存
     *
     * @param from 调用标志
     * @return R
     */
    @GetMapping("/swstinvoiceuse/task/count")
    R getTimerSave(@RequestHeader(SecurityConstants.FROM) String from);
    /**
     * 更改调票申请办理状态
     *
     * @param from 调用标志
     * @return R
     */
    @GetMapping("/swstcycleapply/task/changeHandle")
    R changeHandle(@RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 单程票流失率统计
     * @param from
     * @return
     */
    @PostMapping("/swstonewaystatistics/calc")
    R calc(@RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 车站库存日报表计算，计算前一天
     * @param from
     * @return
     */
    @PostMapping("/swststock/calc")
    R calcStationDaily(@RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 统计前一天的车票售卖详情数据
     * @param from
     * @return
     */
    @PostMapping("/swstconductorselldetail/calc")
    R calcSellDaily(@RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 到结算日期系统自动进行TVM结算
     * @param from
     * @return
     */
    @PostMapping("/swstincomesettle/calc")
    R calcIncomeSettle(@RequestHeader(SecurityConstants.FROM) String from);
    /**
     * 到结算日期系统自动进行BOM结算
     * @param from
     * @return
     */
    @PostMapping("/swstbomsettle/calc")
    R calcBomSettle(@RequestHeader(SecurityConstants.FROM) String from);
    /**
     * 到结算日期系统自动进行BOM结算
     * @param from
     * @return
     */
    @PostMapping("/swstbomsettle/calc")
    R updateSettlePeriodDate(@RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 定时任务统计车站日报表
     * @param from
     * @return
     */
    @PostMapping("/swstreportquery/calcStationIncomeDailyReport")
    R calcIncomeDailyReport(@RequestHeader(SecurityConstants.FROM) String from);
}
